﻿using SvgApplication.Data.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace SvgApplication.Data.Model.Interfaces
{
    public interface IUserRepository
    {
        User Login(string username, string password);

        IQueryable<User> Get(out int total, int index = 0, int size = 50, Expression<Func<User, bool>> filter = null, string orderBy = null);

        void Create(User user);

        void Update(User user);

        void Delete(int id);

        User GetById(int id);

        void UpdateBlockedState(int id, bool blockedState, string reason);

        IQueryable<User> GetAll();

    }
}
